package control.bd.requete;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import control.bd.Connexion;
import control.bd.table.User;
import modele.Produit;
import java.util.List;
import java.util.ArrayList;

	public class Requetes {
	
		public static boolean connexion(String login, String password) {
			boolean bSuccess = false;
			String req = "SELECT PASSWORD FROM utilisateur WHERE LOGIN = '"+login+"'";
	
			try {
				Statement stmt = Connexion.getConnexionBD().createStatement();
				ResultSet rs = stmt.executeQuery(req);
		   		while(rs.next()) {
		   			// si on rentre dans la boucle alors il y a au moins un enregistrement donc login associe au password existe
		   			bSuccess = true;
		   			User user = new User();
		   			user.password = rs.getString(1);

		   		}
	
			} catch (SQLException e) {
			e.printStackTrace();
			}
	
			return bSuccess;
		}
	
		/**
		 * Cree un nouveau compte en bdd
		 */
	    public static boolean creerCompte(String login, String password, String email, String nom, String prenom, String adresse, String tel) {
	        boolean bSuccess = false;
	        String req = "INSERT INTO utilisateur(LOGIN,PASSWORD,EMAIL,NOM,PRENOM,ADRESSE,TELEPHONE,ADMINISTRATEUR) VALUES('" + login + "','" + password + "','" + email + "','" + nom + "','" + prenom + "','" + adresse + "','" + tel + "',0);";
	        try {
	                Statement stmt = Connexion.getConnexionBD().createStatement();
	                if (stmt != null) {
	
	                        int lignesModifiees = stmt.executeUpdate(req);
	                        bSuccess = lignesModifiees == 1;
	
	                }
	
	
	        } catch (SQLException e) {
	                e.printStackTrace();
	        }
	
	        return bSuccess;
	        
	    }
	    
		public static boolean update(String login, String password, String email, String nom, String prenom, String adresse, String tel) {
			boolean bSuccess = false;
			String req = "SELECT * FROM utilisateur";
	
			try {
				Statement stmt = Connexion.getConnexionBD().createStatement();
				stmt.executeQuery (req); 
				ResultSet rs = stmt.executeQuery(req);
		   		while(rs.next()) {
		   			bSuccess = true;
		   			User user = new User();
		   		//	String req1 = "UPDATE utilisateur SET LOGIN = replace(LOGIN,'"+user.getLogin()+"','"+login+"')";
		   			String req1 = "UPDATE utilisateur SET LOGIN = replace(LOGIN,'Bernard','"+login+"')";
		   			stmt.executeUpdate(req1); 

		   		}
	
			} catch (SQLException e) {
			e.printStackTrace();
			}
	
			return bSuccess;
		}
	    
	    /**
		 * 
		 */
	    public static List<Produit> getAllProduitProduit() {
	        String req = "SELECT * FROM produit";
	        List<Produit> produits = new ArrayList<Produit>();
	        try {
	                Statement stmt = Connexion.getConnexionBD().createStatement();
	                ResultSet rs = stmt.executeQuery(req);
			   		while(rs.next()) {
			   			Produit produit = new Produit();
			   			produit.setProduitNom(rs.getString(5));
			   			produits.add(produit);
			   		}
	        } catch (SQLException e) {
	                e.printStackTrace();
	        }	
	        return produits;
	        
	    }
	    
	    /**
		 * 
		 */
	    public static List<Produit> getAllProduitMultimedia() {
	        String req = "SELECT * FROM multimedia";
	        List<Produit> produits = new ArrayList<Produit>();
	        try {
	                Statement stmt = Connexion.getConnexionBD().createStatement();
	                ResultSet rs = stmt.executeQuery(req);
			   		while(rs.next()) {
			   			Produit produit = new Produit();
			   			produit.setProduitNom(rs.getString(5));
			   			produits.add(produit);
			   		}
	        } catch (SQLException e) {
	                e.printStackTrace();
	        }	
	        return produits;
	        
	    }
	    
	    public static List<Produit> getGazeux() {
	        String req = "SELECT * FROM produit WHERE produitCompany='Gazeux';";
	        List<Produit> produits = new ArrayList<Produit>();
	        try {
	                Statement stmt = Connexion.getConnexionBD().createStatement();
	                ResultSet rs = stmt.executeQuery(req);
			   		while(rs.next()) {
			   			Produit produit = new Produit();
			   			produit.setProduitNom(rs.getString(5));
			   			produits.add(produit);
			   		}
	        } catch (SQLException e) {
	                e.printStackTrace();
	        }	
	        return produits;
	        
	    }
	    
	    public static List<Produit> getTel() {
	        String req = "SELECT * FROM multimedia WHERE produitCompany='Tel';";
	        List<Produit> produits = new ArrayList<Produit>();
	        try {
	                Statement stmt = Connexion.getConnexionBD().createStatement();
	                ResultSet rs = stmt.executeQuery(req);
			   		while(rs.next()) {
			   			Produit produit = new Produit();
			   			produit.setProduitNom(rs.getString(5));
			   			produits.add(produit);
			   		}
	        } catch (SQLException e) {
	                e.printStackTrace();
	        }	
	        return produits;
	        
	    }
	    
	    public static List<Produit> getPC() {
	        String req = "SELECT * FROM multimedia WHERE produitCompany='PC';";
	        List<Produit> produits = new ArrayList<Produit>();
	        try {
	                Statement stmt = Connexion.getConnexionBD().createStatement();
	                ResultSet rs = stmt.executeQuery(req);
			   		while(rs.next()) {
			   			Produit produit = new Produit();
			   			produit.setProduitNom(rs.getString(5));
			   			produits.add(produit);
			   		}
	        } catch (SQLException e) {
	                e.printStackTrace();
	        }	
	        return produits;
	        
	    }
	    
	    public static List<Produit> getNonGazeux() {
	        String req = "SELECT * FROM produit WHERE produitCompany='Non Gazeux';";
	        List<Produit> produits = new ArrayList<Produit>();
	        try {
	                Statement stmt = Connexion.getConnexionBD().createStatement();
	                ResultSet rs = stmt.executeQuery(req);
			   		while(rs.next()) {
			   			Produit produit = new Produit();
			   			produit.setProduitNom(rs.getString(5));
			   			produits.add(produit);
			   		}
	        } catch (SQLException e) {
	                e.printStackTrace();
	        }	
	        return produits;
	        
	    }
	    
	    
	    /**
			 * 
			 */
		    public static List<User> getUser() {
		        String req = "SELECT * FROM utilisateur WHERE NOM='Te';";
		        List<User> users = new ArrayList<User>();
		        try {
		                Statement stmt = Connexion.getConnexionBD().createStatement();
		                ResultSet rs = stmt.executeQuery(req);
				   		while(rs.next()) {
				   			User user = new User();
				   			user.setNom(rs.getString(4));
				   			user.setPrenom(rs.getString(5));
				   			user.setEmail(rs.getString(3));
				   			user.setAdresse(rs.getString(6));
				   			user.setTel(rs.getString(7));
				   			users.add(user);
				   		}
		        } catch (SQLException e) {
		                e.printStackTrace();
		        }	
		        return users;
		        
		    }
	    
	}